package view;

/**
 * @author eversonpaulo
 */
//import Relatorio.rel_Tabelas;
import Utilitarios.TamanhoMaximoTextField;
import dao.AssuntoDAO;
import dao.DocumentoDAO;
import dao.ProcessoDAO;
import dao.SetorDAO;

import java.awt.Component;
import java.awt.Cursor;
import java.awt.Font;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.plaf.basic.BasicInternalFrameUI;
import javax.swing.table.DefaultTableModel;
import model.Assunto;
import model.Documento;
import model.Processo;
import model.Setor;
import sun.misc.PerformanceLogger;
import static view.fPrincipal.getPanel;

//import net.sf.jasperreports.engine.JRException;
public class frameProcesso extends javax.swing.JInternalFrame {

    private DefaultTableModel modelo = new DefaultTableModel() {
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };
    private DefaultComboBoxModel modeljcomboboxAssunto = new DefaultComboBoxModel() {
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };

    String opcao = "";
    //Tem Documento ? ;)!kkk
    public static boolean temDoc;
    //Quantidade de documentos no Processo
    public static int qtds;
    //Troca para a table de processo se o usuario clicar para finalizar o cadastro
    boolean trocaTela = false;
    //Se o usuario clicou em Alterar fica true
    public static boolean editas;

    public int inutil;
    private String numeroProcesso;

    public frameProcesso() {
        initComponents();
        liberarCampos(false);
        tabela();
        montaListaAssuntos();

        //Tira as barras de todos os lados da janela
        ((BasicInternalFrameUI) this.getUI()).setNorthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setSouthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setWestPane(null);
        ((BasicInternalFrameUI) this.getUI()).setEastPane(null);

        lbCodigo.setFont(new Font("Tahoma", Font.PLAIN, 11));
        exibePainelCadastro(false);
//        lbIncluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbAlterar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSalvar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbCancelar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbExcluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSair.setFont(new Font("Tahoma", Font.PLAIN, 11));
        relTipo1.setFont(new Font("Tahoma", Font.PLAIN, 11));
        relTipo2.setFont(new Font("Tahoma", Font.PLAIN, 11));
        jCSetor.setEditable(false);
        lbCodigo.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbSigla1.setFont(new Font("Tahoma", Font.PLAIN, 11));

        lbDescricao1.setFont(new Font("Tahoma", Font.PLAIN, 11));

        jtAno.setStartYear(1990);
        jtAno.setEndYear(2020);

        ajusta_botoes();
        jtQTD.setVisible(false);
        monta_jTUnidade();
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel2 = new javax.swing.JPanel();
        buttonGroup2 = new javax.swing.ButtonGroup();
        btPrimeiro = new javax.swing.JButton();
        btAnterior = new javax.swing.JButton();
        btProximo = new javax.swing.JButton();
        btUltimo = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        btNovo = new javax.swing.JButton();
        btEditar = new javax.swing.JButton();
        btImprimir = new javax.swing.JButton();
        relTipo1 = new javax.swing.JRadioButton();
        relTipo2 = new javax.swing.JRadioButton();
        jPanel1 = new javax.swing.JPanel();
        jCadastrar = new javax.swing.JPanel();
        lbSigla1 = new javax.swing.JLabel();
        lbDescricao1 = new javax.swing.JLabel();
        jtComplemento = new javax.swing.JTextField();
        jtCodSetor = new javax.swing.JTextField();
        lbCodigo = new javax.swing.JLabel();
        lbSigla3 = new javax.swing.JLabel();
        jtInterresado = new javax.swing.JTextField();
        lbDescricao2 = new javax.swing.JLabel();
        lbSigla4 = new javax.swing.JLabel();
        lbSigla5 = new javax.swing.JLabel();
        lbSigla6 = new javax.swing.JLabel();
        cbAssunto1 = new javax.swing.JComboBox();
        jCadastrarDocumento = new javax.swing.JToggleButton();
        cbMes1 = new javax.swing.JComboBox();
        jtValor = new javax.swing.JFormattedTextField();
        jtQTD = new javax.swing.JTextField();
        jtData = new com.toedter.calendar.JDateChooser();
        jtAno = new com.toedter.calendar.JYearChooser();
        jCSetor = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        jtNumProc = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTUnidade = new javax.swing.JTable();
        jPanel4 = new javax.swing.JPanel();
        btCancelar = new javax.swing.JButton();
        btGravar = new javax.swing.JButton();
        btSair = new javax.swing.JButton();

        setClosable(true);
        setTitle("Gerenciamento de Seto");
        setToolTipText("");
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btPrimeiro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff (2).png"))); // NOI18N
        btPrimeiro.setToolTipText("Primeiro Registro");
        btPrimeiro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btPrimeiroActionPerformed(evt);
            }
        });
        getContentPane().add(btPrimeiro, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 530, -1, -1));

        btAnterior.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play (2).png"))); // NOI18N
        btAnterior.setToolTipText("Registro Anterior");
        btAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAnteriorActionPerformed(evt);
            }
        });
        getContentPane().add(btAnterior, new org.netbeans.lib.awtextra.AbsoluteConstraints(120, 530, -1, -1));

        btProximo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play.png"))); // NOI18N
        btProximo.setToolTipText("Próximo Registro");
        btProximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btProximoActionPerformed(evt);
            }
        });
        getContentPane().add(btProximo, new org.netbeans.lib.awtextra.AbsoluteConstraints(510, 530, -1, -1));

        btUltimo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff.png"))); // NOI18N
        btUltimo.setToolTipText("Último Registro");
        btUltimo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btUltimoActionPerformed(evt);
            }
        });
        getContentPane().add(btUltimo, new org.netbeans.lib.awtextra.AbsoluteConstraints(580, 530, -1, -1));

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel1.setText("Processo");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 20, 670, 30));

        btNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709290_Add.png"))); // NOI18N
        btNovo.setToolTipText("Inserir um novo registro");
        btNovo.setFocusable(false);
        btNovo.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        btNovo.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        btNovo.setMinimumSize(new java.awt.Dimension(85, 25));
        btNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btNovoActionPerformed(evt);
            }
        });
        getContentPane().add(btNovo, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 70, -1, 40));

        btEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709081_edit-file.png"))); // NOI18N
        btEditar.setToolTipText("Alterar o registro atual");
        btEditar.setFocusable(false);
        btEditar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btEditar.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        btEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btEditarActionPerformed(evt);
            }
        });
        getContentPane().add(btEditar, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 70, -1, 40));

        btImprimir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709420_printer.png"))); // NOI18N
        btImprimir.setToolTipText("Imprime Relatório da Tabela Atual");
        btImprimir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btImprimirActionPerformed(evt);
            }
        });
        getContentPane().add(btImprimir, new org.netbeans.lib.awtextra.AbsoluteConstraints(400, 70, -1, 40));

        buttonGroup1.add(relTipo1);
        relTipo1.setSelected(true);
        relTipo1.setText("Código");
        relTipo1.setToolTipText("Relatório por Código");
        getContentPane().add(relTipo1, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 80, 60, 30));

        buttonGroup1.add(relTipo2);
        relTipo2.setText("Sigla");
        relTipo2.setToolTipText("Relatório por Descrição");
        getContentPane().add(relTipo2, new org.netbeans.lib.awtextra.AbsoluteConstraints(540, 80, 80, 30));
        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 620, 730, 10));

        jCadastrar.setBorder(javax.swing.BorderFactory.createTitledBorder("Processo"));
        jCadastrar.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        lbSigla1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbSigla1.setText("Data");
        lbSigla1.setToolTipText("Data");
        jCadastrar.add(lbSigla1, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 70, 80, 20));

        lbDescricao1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbDescricao1.setText("Complemento");
        lbDescricao1.setToolTipText("Complemento");
        jCadastrar.add(lbDescricao1, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 180, 80, 20));

        jtComplemento.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtComplemento.setToolTipText("Complemento do processo");
        jtComplemento.setAutoscrolls(false);
        jtComplemento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtComplementoActionPerformed(evt);
            }
        });
        jCadastrar.add(jtComplemento, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 200, 480, -1));
        jtComplemento.getAccessibleContext().setAccessibleDescription("Complemento");

        jtCodSetor.setEditable(false);
        jtCodSetor.setBackground(new java.awt.Color(204, 204, 204));
        jtCodSetor.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jtCodSetor.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jtCodSetor.setToolTipText("Código chave do Processo no Sistema");
        jtCodSetor.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jtCodSetor.setDisabledTextColor(new java.awt.Color(204, 204, 204));
        jtCodSetor.setFocusable(false);
        jtCodSetor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtCodSetorActionPerformed(evt);
            }
        });
        jCadastrar.add(jtCodSetor, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 40, 60, -1));

        lbCodigo.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbCodigo.setText("Nº do Processo :");
        lbCodigo.setToolTipText("Nº do Processo");
        lbCodigo.setFocusable(false);
        jCadastrar.add(lbCodigo, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 20, 110, 20));

        lbSigla3.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbSigla3.setText("Assunto");
        lbSigla3.setToolTipText("Assunto");
        jCadastrar.add(lbSigla3, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 70, 80, 20));

        jtInterresado.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtInterresado.setToolTipText("Interessado do Processo");
        jtInterresado.setAutoscrolls(false);
        jtInterresado.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtInterresadoActionPerformed(evt);
            }
        });
        jCadastrar.add(jtInterresado, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 150, 480, -1));
        jtInterresado.getAccessibleContext().setAccessibleDescription("Interresado");

        lbDescricao2.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbDescricao2.setText("Interessado");
        lbDescricao2.setToolTipText("Interessado");
        jCadastrar.add(lbDescricao2, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 130, 80, 20));

        lbSigla4.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbSigla4.setText("Mês");
        lbSigla4.setToolTipText("Mês");
        jCadastrar.add(lbSigla4, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 230, 80, 20));

        lbSigla5.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbSigla5.setText("Ano");
        lbSigla5.setToolTipText("Ano");
        jCadastrar.add(lbSigla5, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 230, 80, 20));

        lbSigla6.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbSigla6.setText("Valor");
        lbSigla6.setToolTipText("Valor");
        jCadastrar.add(lbSigla6, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 230, 80, 20));

        cbAssunto1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { " " }));
        cbAssunto1.setSelectedIndex(-1);
        jCadastrar.add(cbAssunto1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 90, 190, -1));

        jCadastrarDocumento.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1400085937_document-open.png"))); // NOI18N
        jCadastrarDocumento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCadastrarDocumentoActionPerformed(evt);
            }
        });
        jCadastrar.add(jCadastrarDocumento, new org.netbeans.lib.awtextra.AbsoluteConstraints(470, 300, -1, 40));

        cbMes1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro \t" }));
        cbMes1.setSelectedIndex(-1);
        cbMes1.setToolTipText("Mês de Referencia do Processo");
        jCadastrar.add(cbMes1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 250, 180, -1));

        jtValor.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0.00"))));
        jtValor.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        jtValor.setToolTipText("Valor");
        jtValor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtValorActionPerformed(evt);
            }
        });
        jtValor.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtValorKeyTyped(evt);
            }
        });
        jCadastrar.add(jtValor, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 250, 120, -1));
        jCadastrar.add(jtQTD, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 330, 80, -1));

        jtData.setToolTipText("Data de Cadastro do Processo");
        jCadastrar.add(jtData, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 90, 130, -1));
        jtData.getAccessibleContext().setAccessibleDescription("Data");

        jtAno.setToolTipText("Ano de Referência do Processo");
        jCadastrar.add(jtAno, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 250, 80, -1));

        jCadastrar.add(jCSetor, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 310, 120, -1));

        jLabel2.setText("Setor");
        jLabel2.setToolTipText("Setor");
        jCadastrar.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 290, 40, 20));

        jtNumProc.setEditable(false);
        jtNumProc.setBackground(new java.awt.Color(204, 204, 204));
        jtNumProc.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jtNumProc.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jtNumProc.setToolTipText("Número do Processo");
        jtNumProc.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jtNumProc.setDisabledTextColor(new java.awt.Color(204, 204, 204));
        jtNumProc.setFocusable(false);
        jtNumProc.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNumProcActionPerformed(evt);
            }
        });
        jCadastrar.add(jtNumProc, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 40, 150, -1));

        jLabel3.setText("Chave do Processo:");
        jLabel3.setToolTipText("Chave do Processo");
        jCadastrar.add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 20, -1, 20));

        getContentPane().add(jCadastrar, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 120, 560, 390));

        jTUnidade.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        jTUnidade.setToolTipText("Registro Cadastrados");
        jTUnidade.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTUnidadeMouseClicked(evt);
            }
        });
        jTUnidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTUnidadeKeyReleased(evt);
            }
        });
        jScrollPane1.setViewportView(jTUnidade);

        getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 130, 570, 390));
        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 20, 10, 550));

        btCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708933_Redo.png"))); // NOI18N
        btCancelar.setToolTipText("Cancelar alterações ou a inclusão do novo registro");
        btCancelar.setFocusable(false);
        btCancelar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelarActionPerformed(evt);
            }
        });
        getContentPane().add(btCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 70, -1, 40));

        btGravar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708417_Save.png"))); // NOI18N
        btGravar.setToolTipText("Salvar alterações ou uma nova inclusão do registro");
        btGravar.setFocusable(false);
        btGravar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btGravar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btGravarActionPerformed(evt);
            }
        });
        getContentPane().add(btGravar, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 70, -1, 40));

        btSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/logout_user_login_account-3222.png"))); // NOI18N
        btSair.setToolTipText("Fechar o Gerenciamento de Processo");
        btSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSairActionPerformed(evt);
            }
        });
        getContentPane().add(btSair, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 570, -1, -1));
        btSair.getAccessibleContext().setAccessibleDescription("Fechar");

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btPrimeiroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btPrimeiroActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

        btProximo.setEnabled(true);
        btUltimo.setEnabled(true);
        btPrimeiro.setEnabled(false);
        btAnterior.setEnabled(false);
    }//GEN-LAST:event_btPrimeiroActionPerformed

    private void btAnteriorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAnteriorActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow() - 1;
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        if ((linhaAtual - 1) < 0) {
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
        } else {
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);
        }
    }//GEN-LAST:event_btAnteriorActionPerformed

    private void btProximoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btProximoActionPerformed
        int linhaAtual, qdeLinhas;
        linhaAtual = jTUnidade.getSelectedRow() + 1;
        qdeLinhas = jTUnidade.getRowCount();

        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        if ((linhaAtual + 1) == qdeLinhas) {
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        } else {
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
        }
    }//GEN-LAST:event_btProximoActionPerformed

    private void btUltimoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btUltimoActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            linhaAtual = jTUnidade.getRowCount() - 1;
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        btProximo.setEnabled(false);
        btUltimo.setEnabled(false);
        btPrimeiro.setEnabled(true);
        btAnterior.setEnabled(true);
    }//GEN-LAST:event_btUltimoActionPerformed

    private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btNovoActionPerformed
        novoRegistro();
        btSair.setVisible(false);
    }//GEN-LAST:event_btNovoActionPerformed

    private void btEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btEditarActionPerformed
        alteraRegistro();
        btSair.setVisible(false);
    }//GEN-LAST:event_btEditarActionPerformed

    private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btGravarActionPerformed

        //frameDocumento fd = new frameDocumento(Integer.parseInt(jtCodSetor.getText().toString()));
        if (jtQTD.getText().equals("0") || jtQTD.getText().equals("")) {
            if (validarCampos()) {
                JOptionPane.showMessageDialog(null, "Favor Cadastrar Documentos!!!");
            }
        } else {
            if (validarCampos()) {
                trocaTela = true;
                opcao = "alterar";
                gravaRegistro();
                JOptionPane.showMessageDialog(null, "Registro Cadastrado com Sucesso!");
            }
        }

        //}

    }//GEN-LAST:event_btGravarActionPerformed

    private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCancelarActionPerformed
        cancelaRegistro();
        btSair.setVisible(true);
    }//GEN-LAST:event_btCancelarActionPerformed

    private void btImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btImprimirActionPerformed
//        
//        ajustaCursor(0);
//
//        rel_Tabelas relat = new rel_Tabelas();
//        int val = 0;
//
//        if (relTipo1.isSelected()) {
//            val = 0;
//        }
//        if (relTipo2.isSelected()) {
//            val = 1;
//        }
//
//        try {
//            relat.gerar(val, "Cadastro de Setor", "SETOR");
//        } catch (JRException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        } catch (SQLException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        } catch (ClassNotFoundException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        
//        ajustaCursor(1);

    }//GEN-LAST:event_btImprimirActionPerformed

    private void jtComplementoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtComplementoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtComplementoActionPerformed

    private void jtCodSetorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtCodSetorActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtCodSetorActionPerformed

    private void jtInterresadoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtInterresadoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtInterresadoActionPerformed

    private void jCadastrarDocumentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCadastrarDocumentoActionPerformed

        //
        if (jtQTD.getText().equals("")) {
            qtds = 0;
        } else {
            qtds = Integer.parseInt(jtQTD.getText());
        }
        gravaRegistro();
        frameDocumento fd = new frameDocumento(Integer.parseInt(jtCodSetor.getText()), qtds, jtQTD);
        fPrincipal.getPanel().add(fd);
        fd.setVisible(true);
        jCadastrarDocumento.setSelected(false);
        opcao = "alterar";
    }//GEN-LAST:event_jCadastrarDocumentoActionPerformed

    private void jTUnidadeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTUnidadeMouseClicked
        if (opcao.equals("")) {
            int linhaAtual;
            linhaAtual = jTUnidade.getSelectedRow();
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }
    }//GEN-LAST:event_jTUnidadeMouseClicked

    private void jTUnidadeKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTUnidadeKeyReleased
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow();
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        Atribui_Campos();
    }//GEN-LAST:event_jTUnidadeKeyReleased

    private void jtValorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtValorActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtValorActionPerformed

    private void jtValorKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtValorKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtValorKeyTyped

    private void btSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSairActionPerformed
        saiTela();
    }//GEN-LAST:event_btSairActionPerformed

    private void jtNumProcActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNumProcActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNumProcActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btAnterior;
    private javax.swing.JButton btCancelar;
    private javax.swing.JButton btEditar;
    private javax.swing.JButton btGravar;
    private javax.swing.JButton btImprimir;
    private javax.swing.JButton btNovo;
    private javax.swing.JButton btPrimeiro;
    private javax.swing.JButton btProximo;
    private javax.swing.JButton btSair;
    private javax.swing.JButton btUltimo;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.JComboBox cbAssunto1;
    private javax.swing.JComboBox cbMes1;
    private javax.swing.JComboBox jCSetor;
    private javax.swing.JPanel jCadastrar;
    private javax.swing.JToggleButton jCadastrarDocumento;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTUnidade;
    private com.toedter.calendar.JYearChooser jtAno;
    private javax.swing.JTextField jtCodSetor;
    private javax.swing.JTextField jtComplemento;
    private com.toedter.calendar.JDateChooser jtData;
    private javax.swing.JTextField jtInterresado;
    private javax.swing.JTextField jtNumProc;
    private javax.swing.JTextField jtQTD;
    private javax.swing.JFormattedTextField jtValor;
    private javax.swing.JLabel lbCodigo;
    private javax.swing.JLabel lbDescricao1;
    private javax.swing.JLabel lbDescricao2;
    private javax.swing.JLabel lbSigla1;
    private javax.swing.JLabel lbSigla3;
    private javax.swing.JLabel lbSigla4;
    private javax.swing.JLabel lbSigla5;
    private javax.swing.JLabel lbSigla6;
    private javax.swing.JRadioButton relTipo1;
    private javax.swing.JRadioButton relTipo2;
    // End of variables declaration//GEN-END:variables

    public void saiTela() {
        frameProcesso.this.dispose();
    }

    public void ajustaCursor(int tipo) {
        Cursor cursor;

        if (tipo == 0) {
            cursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
        } else {
            cursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
        }

        setCursor(cursor);

    }

    public void ajusta_botoes() {
        if (opcao.equals("")) {
            btGravar.setEnabled(false);
            btCancelar.setEnabled(false);
            btNovo.setEnabled(true);
            btEditar.setEnabled(true);
//            btExcluir.setEnabled(true);

//            lbSalvar.setEnabled(false);
//            lbCancelar.setEnabled(false);
//            lbIncluir.setEnabled(true);
//            lbAlterar.setEnabled(true);
//            lbExcluir.setEnabled(true);
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);

        } else {
            btGravar.setEnabled(true);
            btCancelar.setEnabled(true);
            btNovo.setEnabled(false);
            btEditar.setEnabled(false);

//            lbSalvar.setEnabled(true);
//            lbCancelar.setEnabled(true);
//            lbIncluir.setEnabled(false);
//            lbAlterar.setEnabled(false);
//            lbExcluir.setEnabled(false);
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        }
    }

    public void tabela() {
        jTUnidade.setModel(modelo);

        modelo.addColumn("Código");
        modelo.addColumn("Nº do Processo");
        modelo.addColumn("Data");
        modelo.addColumn("Assunto");
        modelo.addColumn("Interessado");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        

        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(40);
        jTUnidade.getColumnModel().getColumn(1).setPreferredWidth(90);
        jTUnidade.getColumnModel().getColumn(2).setPreferredWidth(70);
        jTUnidade.getColumnModel().getColumn(3).setPreferredWidth(100);
        jTUnidade.getColumnModel().getColumn(4).setPreferredWidth(120);
        jTUnidade.getColumnModel().getColumn(5).setPreferredWidth(200);
        jTUnidade.getColumnModel().getColumn(6).setPreferredWidth(200);
        jTUnidade.getColumnModel().getColumn(7).setPreferredWidth(200);
        jTUnidade.getColumnModel().getColumn(8).setPreferredWidth(200);
        jTUnidade.getColumnModel().getColumn(9).setPreferredWidth(200);

//codigo para esconder uma coluna na JTable
        //Esconder alguma coluna: No Caso a Primeira Coluna
//        jTUnidade.getColumnModel().getColumn(0).setMinWidth(0);
//        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(0);
//        jTUnidade.getColumnModel().getColumn(0).setMaxWidth(0);

//        jTUnidade.getColumnModel().getColumn(3).setMinWidth(0);
//        jTUnidade.getColumnModel().getColumn(3).setPreferredWidth(0);
//        jTUnidade.getColumnModel().getColumn(3).setMaxWidth(0);
//        jTUnidade.getColumnModel().getColumn(4).setMinWidth(0);
//        jTUnidade.getColumnModel().getColumn(4).setPreferredWidth(0);
//        jTUnidade.getColumnModel().getColumn(4).setMaxWidth(0);
        jTUnidade.getColumnModel().getColumn(5).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(5).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(5).setMaxWidth(0);
        jTUnidade.getColumnModel().getColumn(6).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(6).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(6).setMaxWidth(0);
        jTUnidade.getColumnModel().getColumn(7).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(7).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(7).setMaxWidth(0);
        jTUnidade.getColumnModel().getColumn(8).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(8).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(8).setMaxWidth(0);
        jTUnidade.getColumnModel().getColumn(9).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(9).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(9).setMaxWidth(0);
    }

    private void monta_jTUnidade() {
//      Fachada f = new Fachada();

        limpaCampos();
        ProcessoDAO udao = new ProcessoDAO();

        ArrayList<Processo> lista = new ArrayList<Processo>();
        SimpleDateFormat dataFormatada = new SimpleDateFormat("dd/MM/yyyy");
        SimpleDateFormat dataFormatada1 = new SimpleDateFormat("dd/MM/yyyy");
        modelo.setNumRows(0);
        
        //String formatValue = String.format("%05d");
        
        
        lista = udao.findAll2();
        for (int i = 0; i < lista.size(); i++) {
            modelo.addRow(new Object[]{lista.get(i).getId_Processo(),
                
                
                lista.get(i).getNumeroProcesso().substring(4, 9)+lista.get(i).getNumeroProcesso().substring(0, 4),
                dataFormatada.format(lista.get(i).getData().getTime()),
                lista.get(i).getAssunto(),
                lista.get(i).getInteressado(),
                lista.get(i).getComplemento(),
                lista.get(i).getMes(),
                lista.get(i).getAno(),
                lista.get(i).getValor(),
                lista.get(i).getQtdDoc()});
        }
    }

    private void Atribui_Campos() {
        jtCodSetor.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 0).toString());
        
        jtNumProc.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 1).toString());

        String dataFormatada = ((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 2).toString());
        String[] data = dataFormatada.split("/");
        java.util.Calendar dtF1 = new GregorianCalendar(TimeZone.getTimeZone("GMT-3"), new Locale("pt_BR"));
        dtF1.set(java.util.Calendar.YEAR, Integer.parseInt(data[2]));//aqui seta o ano  
        dtF1.set(java.util.Calendar.MONTH, Integer.parseInt(data[1]) - 1);//aqui seta o mes  
        dtF1.set(java.util.Calendar.DATE, Integer.parseInt(data[0]));//aqui seta o dia  
        jtData.setCalendar(dtF1);

        cbAssunto1.getModel().setSelectedItem(jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 3));
        jtInterresado.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 4));
        jtComplemento.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 5));
        cbMes1.getModel().setSelectedItem(jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 6));

        String ano = ((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 7).toString());
        jtAno.setYear(Integer.parseInt(ano));

        jtValor.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 8).toString().replace(".", ","));
        jtQTD.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 9).toString());
        Setor s = new Setor();
        SetorDAO sdao = new SetorDAO();
        String x = fPrincipal.nomeSetor;
        s = sdao.pesquisarSetorSiglaSingle(x);
        jCSetor.getModel().setSelectedItem(x);
    }

    //Limpa os campos, para evitar de deletar um item e ele ainda ficar atribuido no panel
    public void limpaCampos() {
        jtCodSetor.setText("");
        jtData.setCalendar(null);
        cbAssunto1.setSelectedIndex(-1);
        jtInterresado.setText("");
        jtComplemento.setText("");
        jtNumProc.setText("");

        Calendar cal = GregorianCalendar.getInstance();
        cbMes1.setSelectedIndex(cal.get(Calendar.MONTH));
        jtAno.setYear(cal.get(Calendar.YEAR));

        jtValor.setText("");
        jtQTD.setText("");
    }

    private void novoRegistro() {
        exibePainelCadastro(true);
        liberarCampos(true);
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount() - 1;
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        opcao = "incluir";
        editas = false;
        jTUnidade.setEnabled(false);
        ajusta_botoes();
        //Deixar os registros em branco
        limpaCampos();
    }

    private boolean validarCampos() {

        if ((jtComplemento.getText().trim().equals("")) || (jtComplemento.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo COMPLEMENTO não pode ficar em branco. Verifique!!!");
            jtComplemento.requestFocus();
            return false;
        } else {
            if (jtData.getCalendar() == null) {
                JOptionPane.showMessageDialog(null, "O campo DATA não pode ficar em branco. Verifique!!!");
                jtData.requestFocus();
                return false;
            } else {
                if ((jtInterresado.getText().trim().equals("")) || (jtInterresado.getText() == null)) {
                    JOptionPane.showMessageDialog(null, "O campo INTERESSADO não pode ficar em branco. Verifique!!!");
                    jtInterresado.requestFocus();
                    return false;
                } else {
                    if (cbAssunto1.getSelectedItem() == null) {
                        JOptionPane.showMessageDialog(null, "O campo ASSUNTO tem que ser selecionado!");
                        cbAssunto1.requestFocus();
                        return false;
                    } else {
                        if (cbMes1.getSelectedItem() == null) {
                            JOptionPane.showMessageDialog(null, "O campo MÊS tem que ser selecionado!!");
                            cbMes1.requestFocus();
                            return false;
                        } else {
                            if ((jtAno.getYear() == 0)) {
                                JOptionPane.showMessageDialog(null, "O campo ANO tem que ser selecionado!!");
                                jtAno.requestFocus();
                                return false;
                            } else {
                                if ((jtValor.getText().trim().equals("")) || (jtValor.getText() == null)) {
                                    JOptionPane.showMessageDialog(null, "O campo VALOR tem que ser selecionado!!");
                                    jtValor.requestFocus();
                                    return false;
                                }
                            }
                        }
                    }
                }

            }
        }
        return true;
    }

    private void alteraRegistro() {
        if (!(jtCodSetor.getText().equals(""))) {
            liberarCampos(true);
            exibePainelCadastro(true);
            opcao = "alterar";
            editas = true;
            jTUnidade.setEnabled(false);
            ajusta_botoes();

            jtComplemento.setEditable(true);
            jtData.setEnabled(false);
            jtValor.setEditable(true);
            jtInterresado.setEditable(false);
            jtInterresado.setEnabled(false);
            cbAssunto1.setEnabled(true);
            cbMes1.setEnabled(true);
            //jtAno.setEditable(true);
            //jtResponsavel.requestFocus();
        }
    }

    public void liberarCampos(boolean val) {

        jtComplemento.setEditable(val);
        jtData.setEnabled(val);
        jtInterresado.setEnabled(val);
        jtInterresado.setEditable(val);
        jtValor.setEditable(val);
        jCSetor.setEditable(false);
    }

    private void gravaRegistro() {

        String mens = "";
        int valor = 0;
        Processo p = new Processo();

        ProcessoDAO pdao = new ProcessoDAO();
        SetorDAO sdao = new SetorDAO();
        Setor s = new Setor();
        Calendar cal = GregorianCalendar.getInstance();

        while (validarCampos() == true) {

            Assunto ass = (Assunto) cbAssunto1.getSelectedItem();

            p.setAssunto(ass);
            p.setComplemento(jtComplemento.getText());
            p.setAno(jtAno.getYear());

            //seta a quantidade de documentos anexados ao processo
            if (jtQTD.getText().equals("")) {
                p.setQtdDoc(qtds);
            } else {
                p.setQtdDoc(Integer.parseInt(jtQTD.getText()));
            }

            p.setMes(cbMes1.getSelectedItem().toString());
            p.setInteressado(jtInterresado.getText());
            //Pegar o setor
            String x = fPrincipal.nomeSetor;
            s = sdao.pesquisarSetorSiglaSingle(x);
            p.setSetor(s);
            p.setData(jtData.getCalendar());
            
            if(jtNumProc.getText().equals("")){
                geraNumProcesso();
            }
            String n = jtNumProc.getText().substring(5, 9) + jtNumProc.getText().substring(0, 5);
            p.setNumeroProcesso(n);

//            String dtFinal1 = jtData.getText();
//            String[] aFinal1 = dtFinal1.split("/");
//
//            java.util.Calendar dtF1 = new GregorianCalendar(TimeZone.getTimeZone("GMT-3"), new Locale("pt_BR"));
//            dtF1.set(java.util.Calendar.YEAR, Integer.parseInt(aFinal1[2]));//aqui seta o ano  
//            dtF1.set(java.util.Calendar.MONTH, Integer.parseInt(aFinal1[1]) - 1);//aqui seta o mes  
//            dtF1.set(java.util.Calendar.DATE, Integer.parseInt(aFinal1[0]));//aqui seta o dia  
//            p.setData(dtF1);
            String valorS = (jtValor.getText());
            valorS = valorS.replace(",", ".");
            p.setValor(Double.parseDouble(valorS));

            if (opcao.equals("incluir")) {
                
                pdao.incluir(p);
                valor = 1;
                mens = "Operação Realizada com Sucesso!!!";

                jtCodSetor.setText(Integer.toString(p.getId_Processo()));
                jtQTD.setText(Integer.toString(p.getQtdDoc()));

            } else if (opcao.equals("alterar")) {

                p.setId_Processo(Integer.parseInt(jtCodSetor.getText()));
                pdao.alterar(p);
                valor = 1;
                mens = "Operação Realizada com Sucesso!!!";
            }

            if (valor > 0) {
                //JOptionPane.showMessageDialog(null,mens);
            } else {
                JOptionPane.showMessageDialog(null, "Não foi possivel " + opcao + " o registro. Verifique!!!");
                int linhaAtual;
                linhaAtual = jTUnidade.getRowCount();
                if (linhaAtual > 0) {
                    jTUnidade.changeSelection(0, 0, false, false);
                    Atribui_Campos();
                }
            }
            opcao = "";
            jTUnidade.setEnabled(true);
            jtCodSetor.setEditable(false);

            if (trocaTela == true) {

                monta_jTUnidade();
                ajusta_botoes();
                liberarCampos(false);

                exibePainelCadastro(false);
                trocaTela = false;
            }
            break;
        }

    }

    private void cancelaRegistro() {
        ProcessoDAO pdao = new ProcessoDAO();
        Processo p = new Processo();
        DocumentoDAO ddao = new DocumentoDAO();
        List<Documento> doc = new ArrayList<Documento>();

        //Verifica se estar em editar
        if (editas == false) {
            if (!jtCodSetor.getText().equals("")) {
                doc = ddao.pesquisarDocumentoCod(Integer.parseInt(jtCodSetor.getText()));
                for (Documento ds : doc) {
                    ddao.remover2(ds);
                }
                p.setId_Processo(Integer.parseInt(jtCodSetor.getText()));
                pdao.remover2(p);

            }
        }

        exibePainelCadastro(false);
        liberarCampos(false);
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

        opcao = "";
        jtCodSetor.setEditable(false);
        jTUnidade.setEnabled(true);
        ajusta_botoes();

    }

//    private void excluiRegistro() {
//        int valor = 0;
//
//        ProcessoDAO adao = new ProcessoDAO();
//        Processo p = new Processo();
//        DocumentoDAO ddao = new DocumentoDAO();
//
//        List<Documento> lista = new ArrayList<Documento>();
//        p.setId_Processo(Integer.parseInt(jtCodSetor.getText()));
//
//        String nome = "Tem Certeza em Deletar Este Registro de Processo  a- " + jtComplemento.getText();
//        int opc = JOptionPane.showConfirmDialog(null, nome, "Exclusão", JOptionPane.YES_NO_OPTION);
//
//        if (opc == JOptionPane.YES_OPTION) {
//
//            lista = ddao.pesquisarDocumentoCod((Integer.parseInt(jtCodSetor.getText())));
//            for (int i = 0; i < lista.size(); i++) {
//                ddao.remover2(lista.get(i));
//            }
//            adao.remover2(p);
//
//            valor = 1;
//
//            if (valor > 0) {
//                JOptionPane.showMessageDialog(null, "Registro excluido com sucesso!!!");
//            } else {
//                JOptionPane.showMessageDialog(null, "Erro na Exclusão - Verifique!!!");
//            }
//        }
//        monta_jTUnidade();
//        cancelaRegistro();
//    }
    private void exibePainelCadastro(boolean val) {

        jCadastrar.setVisible(val);
        jScrollPane1.setVisible(!val);

        //organiza os botões
        btNovo.setVisible(!val);
        btEditar.setVisible(!val);
        //   btExcluir.setVisible(!val);
        btAnterior.setVisible(!val);
        btPrimeiro.setVisible(!val);
        btProximo.setVisible(!val);
        btUltimo.setVisible(!val);
        btImprimir.setVisible(!val);
        relTipo1.setVisible(!val);
        relTipo2.setVisible(!val);

    }

    private void montaListaAssuntos() {
        modeljcomboboxAssunto.removeAllElements();
        AssuntoDAO as = new AssuntoDAO();

        ArrayList<Assunto> lista3 = new ArrayList<Assunto>();
        lista3 = as.findAll2();

        for (Assunto a : lista3) {
            modeljcomboboxAssunto.addElement(a);
        }

        cbAssunto1.setModel(modeljcomboboxAssunto);
    }

    /**
     * * @author Bruno Albuquerque * * Este método gera um Número sequencial
     * para o Processo, no formato * #####/AAAA, que é reiniciado todo ano de
     * forma automática
     */
    public void geraNumProcesso() {
        //Variáveis para separar o numero do processo
        String numArray[] = new String[2];
        //id que está no campo do numero do processo
        String strNum;
        //Ano que está no numero do processo
        String campoAno;
        //variavel local para o numero do processo
        String numProc;
        //ano atual do sistema
        String anoAtual;
        //Variáveis de Processo 
        Processo p = new Processo();
        List<Processo> pl = new ArrayList<Processo>();
        ProcessoDAO pdao = new ProcessoDAO();
        //Pega o ano atual
        Calendar cal = GregorianCalendar.getInstance();
        anoAtual = Integer.toString(cal.get(Calendar.YEAR));
        //Pega todos os registros 
        pl = pdao.findAll2();
        //Verifica se não há registros no banco
        if (pl.isEmpty()) {
           
            //Primeiro regisro
            numProc = anoAtual + "00001";
            //Se não for o último processo 
        } else {
//            if (opcao.equals("alterar")) { 
            //Pega o ultimo registro cadastrado
            p = pl.get((pl.size() - 1));
            //separa os campos do numero do Processo
            numArray[0] = p.getNumeroProcesso().substring(0, 4);
            numArray[1] = p.getNumeroProcesso().substring(4, 9);
//            numArray = p.getNumeroProcesso().split("/");
            //atribui os respectivos campos
            campoAno = numArray[0];
            strNum = numArray[1];
            //Verifica se o ultimo registro está no ano atual 
            if (campoAno.equals(anoAtual)) {
                int n = (Integer.parseInt(strNum) + 1);
                String formatValue = String.format("%05d", n);
                numProc =anoAtual+formatValue;
            } else {
                 //Iniciará uma nova contagem dos registros
                numProc = anoAtual + "00001";
            }
            
        }
        
        String numFinal = numProc.substring(4, 9)+numProc.substring(0, 4);
        jtNumProc.setText(numFinal);
    }
}
